//package sc.love.boot;
//
//
//import lombok.Data;
//import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
//import org.springframework.boot.context.properties.ConfigurationProperties;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//import org.springframework.data.redis.connection.RedisClusterConfiguration;
//import org.springframework.data.redis.connection.RedisNode;
//import org.springframework.data.redis.connection.StringRedisConnection;
//import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
//import org.springframework.data.redis.core.RedisTemplate;
//import org.springframework.data.redis.serializer.JdkSerializationRedisSerializer;
//import org.springframework.data.redis.serializer.StringRedisSerializer;
//import redis.clients.jedis.JedisPoolConfig;
//
//import java.util.ArrayList;
//import java.util.List;
//
//@Configuration
//@EnableAutoConfiguration//让所有@Configuration的类加载到springboot所创建的ioc容器
//@Data
//@ConfigurationProperties("spring.redis.cluster")
//public class RedisConfig {
//
//    List<Integer> ports;
//    String host;
//    JedisPoolConfig poolConfig;
//
//    /**
//     * 获取到端口和ip  配置RedisClusterConfiguration实例
//     * @return
//     */
//    @Bean
//    RedisClusterConfiguration redisClusterConfiguration() {
//        RedisClusterConfiguration redisClusterConfiguration = new RedisClusterConfiguration();
//        List<RedisNode> ns = new ArrayList<>();
//        for (Integer port : ports) {
//            ns.add(new RedisNode(host, port));
//        }
//        redisClusterConfiguration.setClusterNodes(ns);
//        return redisClusterConfiguration;
//    }
//
//    /**
//     * 创建jedis连接工厂
//     * @return
//     */
//    @Bean
//    JedisConnectionFactory jedisConnectionFactory(){
//        return new JedisConnectionFactory(redisClusterConfiguration(), poolConfig);
//    }
//
//    /**
//     * 配置一下RedisTemplate  这样使用就和单例没区别了
//     * @return
//     */
//    @Bean
//    RedisTemplate redisTemplate(){
//        RedisTemplate<Object, Object> objectObjectRedisTemplate = new RedisTemplate<>();
//        objectObjectRedisTemplate.setConnectionFactory(jedisConnectionFactory());
//        objectObjectRedisTemplate.setKeySerializer(new StringRedisSerializer());
//        objectObjectRedisTemplate.setValueSerializer(new JdkSerializationRedisSerializer());
//        return objectObjectRedisTemplate;
//    }
//
//}
